function checkPhone(val) {
  //手机号正则验证
  let reg = /^1[3456789]{1}\d{9}$/;
  if (reg.test(val)) {
    return true;
  } else {
    return false;
  }
}
function checkIdCard(id) {
  const regex =
    /^[1-9]\d{5}(18|19|20|21|22)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$/;
  if (regex.test(id)) {
    return true;
  } else {
    return false;
  }
}
function isValidUSCI(code) {
  // 步骤 1: 检查长度
  if (code.length !== 18) {
    return false;
  }

  // 步骤 2: 检查数字
  if (!/^\d{18}$/.test(code)) {
    return false;
  }

  // 步骤 3: 计算校验码
  const weights = [
    1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28,
  ];
  let sum = 0;
  for (let i = 0; i < 17; i++) {
    sum += parseInt(code[i], 10) * weights[i];
  }
  const checkDigit = (31 - (sum % 31)) % 31; // 根据算法计算校验码
  const checkDigitChar = "0123456789X".charAt(checkDigit); // X用于替代10的情况

  // 比较计算出的校验码与第18位是否匹配
  return checkDigitChar === code[17];
}

export default {
  checkPhone,
  checkIdCard,
  isValidUSCI,
};
